Block matching in motion estimation is a very significant and critical operation in the context of a temporal predictive coding scheme. As known, in the technique of block matching, a current frame is divided into square blocks of pixels, and an effort is made to find a new block (e.g., from a previous frame) that is close to a current block, according to a predetermined criterion. The new block is then used as a predictor for the current one, and the displacement between the two blocks is used to define motion vector associated with the current block. A full search (FS) for block matching needs a significant amount of resources, and some algorithms have been proposed to address the FS computational cost. While such algorithms for FS might make the search faster, there is some sacrifice in the visual quality. Moreover, such algorithms do not take into consideration the bits required to encode the motion vectors and therefore are not the preferred alternatives. It is desirable to have algorithms that consider the effect of the bit requirement of the motion vectors in the estimation process and yet not waste the resources required for a FS. It is known that there are several coding modes used, including InterV4, Inter, Intra, and Skip.
SAD (sum of absolute differences) is an algorithm used for digital motion estimation. The SAD method generates a metric of local uniqueness by calculating the distortion from a template image within a search window centred on the template image. In one form, performing SAD requires a number of subtractions with proper complementation to produce the absolute values which are followed by an accumulation to perform the final operation. In the context of this invention, resolution of a digital display for motion estimation is understood in terms of pixels. Also, the terms pixel and pel are used synonymously herein.